草庐IT

Spring Mongo Repository 多态性

全部标签

java - 编译时多态性

我有一个关于java中编译时多态性的问题。方法重载是一种实现编译时多态性的方式吗?如果是,这是唯一的方法吗?小例子会对我有很大帮助。我在网上搜索过,不同的来源给出了不同的答案,令人困惑。这就是为什么我想到在这里问它。提前致谢。 最佳答案 我找到了这个externalsource.它声明没有“编译时多态性”。您可能是指“运行时多态性”?从本质上讲,多态性是指一个方法不是由在编译时定义的固定方法实现执行的特性,而是在运行时查找选择哪个方法实现来执行调用。比如Java中有Object::equals,它在“Object”类中有实现。如果您

java - 使用多态性初始化对象列表

我有一个关于应用多态性的问题:假设我有一个类Bird,并且我有许多扩展它的类(如Pigeon、Falcon等等)。接下来,我有一个Cage类。在这门课中,我想列出住在那个笼子里的鸟(每个笼子里只能住一种鸟)。因此,我不知道列表的扩展类型(APigeon?或者Eagle?),我唯一知道的就是它将是一只鸟。如果PigeonextendsBird使用多态性,我可以将一只鸟声明为:Birdtom=newPigeon();而不是Pigeontom=newPigeon();那么为什么我不能在构造函数中初始化类似的东西:[...]privateListbirdList;publicCage(){th

Java 多态性 : How can I avoid type casting input parameters?

假设我们有一个带有compare()函数的Parent接口(interface)。publicinterfaceParent{publicintcompare(ParentotherParent);}假设childChild1、Child2、Child3实现了这个接口(interface)ParentpublicclassChild1implementsParent{@Overridepublicintcompare(Parentother){Child1otherChild=(Child1)other;}}此外,我正在使用泛型代码中的其他地方。所以我需要从代码的其他部分比较两个类型为

java - 为什么 "synchronized"对多态没有作用

synchronized不是方法签名的一部分。但是当我们覆盖一个方法时,决定被覆盖的方法是否编译的不仅仅是方法签名。例如,我们不能添加或扩大检查异常为什么synchronized在多态性中没有作用。一个synchronized方法不应该在没有放置synchronized的情况下被覆盖。因为使用父类(superclass)变量的人可能认为所有方法都是线程安全的。但非同步方法应该允许被synchronized覆盖,因为它增加了更多的功能,但另一方面用户不会遇到任何错误,除了时间延迟。我正在寻找一个合乎逻辑的解释,它可以阐明“为什么这样设计”。 最佳答案

java - Jackson 多态类型处理 - 属性被丢弃

我有这个JSON模型类,publicclassResponse{@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,property="category")@JsonSubTypes({@Type(value=Series.class,name="Series"),@Type(value=Movies.class,name="Movies")})publicstaticabstractclassAsset{publicStringcategory;publicStringid;}publicst

java - 令人困惑的 Java 多态性

考虑这段代码(完整的类,运行良好,为简洁起见,所有类都在一个类中)。我的问题在代码list之后:importjava.util.LinkedList;importjava.util.List;classGadget{publicvoidswitchon(){System.out.println("GadgetisSwitchingon!");}}interfaceswitchonable{voidswitchon();}classSmartphoneextendsGadgetimplementsswitchonable{@Overridepublicvoidswitchon(){Sys

java - 在 Java 的多态性中使用抽象类是一种好的/常见的做法吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion在所有示例中,我都看到接口(interface)用于实现多态性。现在我们有以下带有抽象类的代码AbstractClassparent=newChild();Here男人说AcommonargumentisthatPolymorphismonlyappliestointerfacesandnotabstractclasses.我认为他的意思是它们通常是在Java中用于多态性的接口(inter

java - 运行时多态性决定

我在某处读到,运行时多态性是语言中动态类型化的结果。通过检查下面的代码,我们可以看到一个清晰的运行时多态性示例。classA{do(){}}classBextendsA{do(){}}...Aex=newB();ex.do();由于存在父类(superclass)类型引用,编译器无法决定实际引用哪个类型并在运行时绑定(bind)方法。但是下面使用相同类定义的用法呢?我的第一个问题是关于下面的例子;classA{do(){}}classBextendsA{//nooverriding}...Aex=newB();ex.do();层次结构中只有一个版本的方法do()。系统是否仍然等待运行时

java - 将 java.lang.reflect.getMethod 与多态方法一起使用

考虑以下片段:publicclassReflectionTest{publicstaticvoidmain(String[]args){ReflectionTesttest=newReflectionTest();Stringobject=newString("Hello!");//1.StringisacceptedasanObjecttest.print(object);//2.TheappropriatemethodisnotfoundwithString.classtry{java.lang.reflect.Methodprint=test.getClass().getMeth

【C++】多态

文章目录1.多态的概念1.1概念2.多态的定义及实现2.1多态的构成条件2.2虚函数2.3虚函数的重写2.4C++11override和final2.5重载、覆盖(重写)、隐藏(重定义)的对比3.抽象类3.1概念3.2接口继承和实现继承4.多态的原理4.1虚函数表4.2多态的原理4.3动态绑定与静态绑定5.单继承和多继承关系的虚函数表5.1单继承中的虚函数表5.2多继承中的虚函数表5.3菱形继承、菱形虚拟继承1.多态的概念1.1概念通俗来说,多态就是多种形态,在完成某个行为时,不同的对象会产生多种不同的状态。举个例子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买